home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -in_the_mag- / reader_requests / wild / include / pyperlibmaker.i < prev    next >
Text File  |  2000-02-23  |  2KB  |  114 lines

  1.  
  2. ; Library maker macro.    Based on the code by Rudla Kudla, adapted to work better on DEVPAC 3.14
  3.  
  4. LSt_Begin    EQU    1
  5. LSt_Init    EQU    2
  6. LSt_Funcs    EQU    3
  7. LSt_Code    EQU    4
  8. LSt_Done    EQU    5
  9.  
  10. Lib_State    SET    LSt_Begin
  11.  
  12. Lib        MACRO    
  13.  
  14. ;-------------------------------------------------------------------------------
  15.  
  16.         IFEQ    Lib_State-LSt_Begin        ; Inizializza la Lib ?
  17. ;    In:    Name,Version,Revision,Date,BaseSize
  18.          moveq.l    #-1,d0        ; Se una Lib è eseguita, ritorna un
  19.          rts            ; errore !
  20. Lib_ROMTag\@    dc.w    $4afc        ; ???
  21.         dc.l    Lib_ROMTag\@,_Lib_End
  22.         dc.b    $80,\2,9,0    ; ???
  23.         dc.l    Lib_Name,Lib_IdString,Lib_Init\@
  24. Lib_Init\@    dc.l    \5,Lib_Func,Lib_InitData\@,Lib_InitBis
  25. Lib_InitData\@    dc.w    $a008,$0900,$800a
  26.         dc.l    Lib_Name,$a00e0600,$90140002,$90160000
  27.         dc.w    $8018
  28.         dc.l    Lib_IdString,0
  29. Lib_Name    dc.b    '\1.library',0
  30. Lib_IdString    dc.b    '$VER: \1.library \2.\3 (\4)',13,10,0
  31.         EVEN
  32. Lib_Small    SET    1
  33. Lib_State    SET    LSt_Init
  34.         MEXIT
  35.         ENDC
  36.  
  37. ;----------------------------------------------------------------------------------
  38.  
  39.         IFC    '\1','FUNCTIONS'
  40.          IFNE    Lib_State-LSt_Init
  41.          dc.b    'Declare HEADER before FUNCTIONS !'
  42.          ENDC
  43. Lib_Func
  44. Lib_FuncNum     SET    0
  45. Lib_State     SET    LSt_Funcs
  46.          IFNE    Lib_Small
  47.          dc.w    -1
  48.          ENDC
  49.          MEXIT
  50.         ENDC
  51.  
  52. ;------------------------------------------------------------------------------------
  53.  
  54.         IFC    '\1','Init'
  55. Lib_InitBis
  56.          MEXIT
  57.         ENDC
  58.  
  59. ;-----------------------------------------------------------------------------
  60.         
  61.         IFC    '\1','CODE'
  62.          IFNE    Lib_State-LSt_Funcs
  63.          dc.b    'Declare FUNCS before CODE !'
  64.          ENDC
  65.          dc.w    -1
  66.          IFEQ    Lib_Small
  67.          dc.w    -1
  68.          ENDC
  69. Lib_State     SET    LSt_Code
  70.          MEXIT
  71.         ENDC
  72.  
  73. ;-----------------------------------------------------------------------------
  74.  
  75.         IFC    '\1','END'
  76. _Lib_End
  77. Lib_State     SET    LSt_Done
  78.          MEXIT
  79.         ENDC
  80.  
  81. ;------------------------------------------------------------------------------
  82.  
  83.         IFC    '\1','LARGE'
  84. Lib_Small     SET    0
  85.         ENDC
  86.  
  87. ;-----------------------------------------------------------------------------
  88.         
  89.         IFNC    '\1',''
  90.          IFEQ    Lib_State-LSt_Funcs
  91. Lib_FuncNum     SET    Lib_FuncNum+1
  92.           IFND    _LVO\1
  93. _LVO\1           EQU    -Lib_FuncNum*6
  94.            ENDC
  95.           IFNE    Lib_Small
  96.           dc.w    \1-Lib_Func
  97.           ELSE
  98.           dc.l    \1
  99.           ENDC
  100.          ENDC
  101.         ENDC
  102.  
  103. ;--------------------------------------------------------------------------------------
  104.         
  105.         IFEQ    Lib_State-LSt_Code
  106. \1
  107.         ENDC
  108.         ENDM
  109.  
  110.  
  111.  
  112.  
  113.  
  114.